.NET 9 中没有 wasi 实验性支持
2023年10月份写过一篇《本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9 》[1],根据此问题[2],在 .NET 9 RTM 中似乎不会有wasi-experimental,仅使用 componentize-dotnet [3]的项目才能工作/将被更新,WASI 实验正在 NET 10 中继续进行。
2024年9月份字节码联盟发布了一篇文章《 使用 componentize-dotnet 为 .NET/C# 开发人员简化组件》[4],文章总结了componentize-dotnet
项目,这是一个为.NET/C#开发者提供的工具,使得将代码编译为WebAssembly组件变得简单。这个由Bytecode Alliance发起的项目是一个NuGet包,允许从.NET应用程序创建完全AOT编译的组件,为.NET开发者提供了与Rust和TinyGo相当的组件体验。文章详细介绍了如何使用.NET 9 Preview 7和componentize-dotnet
开始构建组件,包括安装必要的软件、配置NuGet以引用实验性包源、添加BytecodeAlliance.Componentize.DotNet.Wasm.SDK
包到项目中,并展示了如何构建和运行一个简单的WebAssembly组件。此外,文章还探讨了如何简化组件工作流程,特别是如何使用WebAssembly Interface Type (WIT)定义来实现组件间的互操作性。最后,文章提到了.NET 9最终发布时将支持通过Mono编译器生成组件,以及componentize-dotnet
项目将如何为用户提供选择NativeAOT-LLVM
或Mono编译器的便利。文章鼓励有兴趣的开发者加入Bytecode Alliance社区并参与componentize-dotnet
项目。
根据这篇文章的最新的适用于 .NET 9 RC 2 和 Wasmtime 26.0.0的代码示例: https://github.com/henrikrxn/webassembly-experiments/blob/main/dotnet-9/componentize-dotnet/README.md[5]
相关链接:
[1]本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9 :https://www.cnblogs.com/shanyou/p/17739970.html
[2]在 .NET 9 中禁用构建wasi: https://github.com/dotnet/runtime/pull/108877
[3]componentize-dotnet:https://github.com/bytecodealliance/componentize-dotnet
[4]使用 componentize-dotnet 为 .NET/C# 开发人员简化组件:https://bytecodealliance.org/articles/simplifying-components-for-dotnet-developers-with-componentize-dotnet
[5].NET 9 RC 2 和 Wasmtime 26.0.0的代码示例:https://github.com/henrikrxn/webassembly-experiments/blob/main/dotnet-9/componentize-dotnet/README.md